home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Purity / Purity #23 (1994-02-10)(Diesel)(DE)[WB].zip / Purity #23 (1994-02-10)(Diesel)(DE)[WB].adf / Tools / ToolTime.p < prev    next >
Text File  |  1994-01-20  |  2KB  |  80 lines

  1. UNIT ToolTime;
  2.  
  3. {$Projekt MyTools}
  4.  
  5. INTERFACE
  6.  
  7.   PROCEDURE datum(VAR jahr,monat,tag:LONG);
  8.   PROCEDURE uhrzeit(VAR stunden,minuten,sekunden:Byte);
  9.  
  10. IMPLEMENTATION
  11.  
  12.   {$incl "libraries/dos.h","dos.lib"}
  13.  
  14.   PROCEDURE datum;
  15.     VAR zeit:p_DATESTAMP;
  16.         xx : p_DateStamp;
  17.  
  18.    PROCEDURE berechne_Jahr(VAR jahr,Tag:LONG);
  19.     VAR       ende:BOOLEAN;
  20.         Jahrlaenge:INTEGER;
  21.  
  22.    BEGIN
  23.     ende:=FALSE;
  24.     REPEAT
  25.      IF (jahr MOD 4 <> 0)  THEN Jahrlaenge:=365  { normales Jahr }
  26.                            ELSE Jahrlaenge:=366; { Schaltjahr    }
  27.      IF (tag-Jahrlaenge<1) THEN ende:=TRUE
  28.                            ELSE
  29.                             BEGIN
  30.                              tag:=tag-Jahrlaenge;
  31.                              jahr:=jahr+1;
  32.                             END;
  33.     UNTIL ende;
  34.    END;
  35.  
  36.    PROCEDURE berechne_monat_und_tag(VAR jahr,monat,tag:LONG);
  37.     TYPE liste=ARRAY[1..12] OF INTEGER;
  38.  
  39.    VAR monate:liste;
  40.          ende:BOOLEAN;
  41.  
  42.    BEGIN
  43.     monate:=liste(31,28,31,30,31,30,31,31,30,31,30,31);
  44.     IF (jahr MOD 4 =0) THEN monate[2]:=29; {Februar im Schaltjahr 29 Tage}
  45.     ende:=FALSE;
  46.     REPEAT
  47.      IF (tag-monate[monat]<1) THEN ende:=TRUE
  48.                               ELSE BEGIN
  49.                                     tag:=tag-monate[monat];
  50.                                     monat:=monat+1;
  51.                                    END;
  52.     UNTIL ende;
  53.    END;
  54.  
  55.    BEGIN
  56.     xx := _DATESTAMP(zeit);
  57.     tag:=zeit^.ds_days+1;
  58.     jahr:=1978;           { von hier aus wird gezählt }
  59.     monat:=1;
  60.     berechne_jahr(jahr,tag);
  61.     berechne_monat_und_tag(jahr,monat,tag);
  62.    END;
  63.  
  64.   PROCEDURE uhrzeit;
  65.      VAR zeit:DATESTAMP;
  66.          xx : p_DateStamp;
  67.   BEGIN
  68.     xx := _DATESTAMP(^zeit);
  69.     stunden:=zeit.ds_minute DIV 60;
  70.     minuten:=zeit.ds_minute MOD 60;
  71.    sekunden:=zeit.ds_tick DIV 50;
  72.   END;
  73.  
  74. BEGIN
  75. END.
  76.  
  77.  
  78.  
  79.  
  80.